package com.stardata.liangshisq.tcslmon.service;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.stardata.liangshisq.tcslmon.entity.ProductVo;
import com.stardata.liangshisq.tcslmon.entity.WindowItemVo;
import org.jetbrains.annotations.NotNull;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Samson Shu
 * @email shush@stardata.top
 * @date 2020/12/14 10:35
 */
@DS("canyin")
public interface PrepareService {
  /**
   * 查询配菜界面配菜窗口菜品列表
   * @param shopId 归属店铺
   * @param windowIndex 窗口序号
   * @return 返回的切配类菜品列表
   */
  @NotNull
  List<WindowItemVo> queryWindowItems(@NotNull Long shopId, int windowIndex);

  /**
   * 查询配菜界面等待配菜的菜品列表
   * @param shopId 归属店铺
   * @return 返回的待配菜菜品列表
   */
  @NotNull
  List<ProductVo> queryWaitingItems(@NotNull Long shopId);

  /**
   * 保存配菜操作
   * @param operUserId 操作员工id
   * @param kcKscIds 完成配菜的后厨流水id列表
   * @param prepared 是否完成配菜（true:是；false:否）；
   */
  @Transactional(rollbackFor = {Exception.class})
  void savePrepareByList(@NotNull Long operUserId, @NotNull List<Long> kcKscIds,
                         @NotNull Boolean prepared);

  /**
   * 查询已配菜、但尚未传菜的历史记录
   * @param shopId 店铺ID
   * @param keyword 查询关键词
   * @return 查询结果
   */
  List<ProductVo> queryPrepared(@NotNull Long shopId, String keyword);
}
